unit SmallStruct.View;

interface

uses Classes,
  SmallStruct.Core;

const
  SS_VIEW_FACTORY: string = 'VIEW_FACTORY';

type
  ISSViewContext = interface(ISSObjectContext)
    ['{F00BD8D8-3A78-49DC-94E6-D022AA257479}']
    function GetResource: ISSObjectContainer;
  end;

  ISSView = interface(ISSRuntimeObject)
    ['{F4FE7DD1-969B-41DA-9A3E-B0CA0E1D6949}']
    function GetModelContainer: ISSObjectContainer;
  end;

  ISSDataView = interface(ISSView)
    ['{84208449-CD21-4B4F-8320-A75E70D58E3C}']
    procedure InitDataSource;
  end;

  ISSDataGridView = interface(ISSDataView)
    ['{43101FA9-E163-4DBA-8827-F6E9A4182B06}']
    function GetSelectBookmark: TStringList;
    procedure SetCustomeConfiguration(ACustomeConfiguration: ISSConfiguration);
    function GetCustomeConfiguration: ISSConfiguration;
  end;

  ISSDataFormView = interface(ISSDataView)
    ['{3F1BB5C1-1F7A-4E7E-B70F-E91178C99142}']
  end;

  ISSViewFactory = interface(ISSObject)
    ['{0142B832-7FDA-4C25-96B4-9A5BFCEA2985}']
    function GetView(const AViewName: string): ISSView;
    procedure FreeView(AView: ISSView);
  end;

  ISSMultiView = interface(ISSView)
    ['{39D705E2-D05A-4EAB-8AC6-987F9C12554D}']
    function GetViewContainer: ISSObjectContainer;
  end;

implementation

end.
